#include <sys\types.h> #include <sys\stat.h> int stat(pathname, buffer); char *pathname; path-имя существующего файла struct stat *buffer; указатель на строку, принимающую результаты
Описание.
Функция stat получает информацию о файле или директории, определенном по pathname , и запоминает ее в структуре, на которую указывает buffer . Структура stat , объявленная в <sys\stat.h> , содержит следующие поля.
Поле Значение
st_mode Битовая маска для информации о режиме
файла. Бит S_IFDIR устанавливается,
если pathname определяет директорий;
бит S_IFREG устанавливается, если
pathname ссылается на обычный файл.
Биты чтения/записи устанавливаются
пользователем в соответствии с режимом
доступа к файлу. Пользователь выполняет
установку битов, используемых для рас-
ширения имени файла.
st_dev Номер устройства диска, содержащего
файл.
st_rdev Номер устройства диска, содержащего
файл.
(аналогично st_dev).
st_nlink Всегда 1.
st_size Размер файла в байтах.
st_atime Время последней модификации файла.
st_mtime Время последней модификации файла
(аналогично st_atime).
st_ctime Время последней модификации файла
(аналогично st_atime и st_mtime).
В структуре типа stat существуют три дополнительных поля, которые для MS DOS не имеют смысла.
Возвращаемое значение.
Функция stat возвращает значение 0, если получена информация о статусе файла. Возвращаемое значение -1 свидетельствует об ошибке, и errno устанавливается в ENOENT , т.е. имя файла или path -имя не найдено.
Замечание.
Если заданный pathname ссылается на устройство, поля размера и времени в структуре stat не имеют осмысленного значения.
Пример.
#include <sys\types.h>
#include <sys\stat.h>
#include <stdio.h>
struct stat buf;
int result;
char *args[4];
.
.
.
result = stat("child.exe", &buf);
if (result == 0)
if (buf.st_mode & S_IEXEC)
execv("child.exe", args);